pfn_to_mfn_frame_list[j] =
virt_to_machine(&phys_to_machine_mapping[i]) >> PAGE_SHIFT;
}
-//pfn_to_mfn_frame_list[0] = 0xdeadbeff;
-printk("Hsi %lx %lx :: %lx\n", pfn_to_mfn_frame_list,
- virt_to_machine(pfn_to_mfn_frame_list),
-HYPERVISOR_shared_info->arch.mfn_to_pfn_start
- );
HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list =
virt_to_machine(pfn_to_mfn_frame_list) >> PAGE_SHIFT;
-
-
/* If we are a privileged guest OS then we should request IO privileges. */
if ( start_info.flags & SIF_PRIVILEGED )
{
shared_info_t *HYPERVISOR_shared_info = (shared_info_t *)empty_zero_page;
EXPORT_SYMBOL(HYPERVISOR_shared_info);
-unsigned long *phys_to_machine_mapping;
+unsigned long *phys_to_machine_mapping, *pfn_to_mfn_frame_list;
EXPORT_SYMBOL(phys_to_machine_mapping);
multicall_entry_t multicall_list[8];
*/
void __init setup_arch(char **cmdline_p)
{
- unsigned long max_low_pfn;
+ int i,j;
+
+ unsigned long max_low_pfn;
HYPERVISOR_vm_assist(VMASST_CMD_enable,
VMASST_TYPE_4gb_segments);
#endif
paging_init();
+ pfn_to_mfn_frame_list = alloc_bootmem_low_pages(PAGE_SIZE);
+ for ( i=0, j=0; i < max_pfn; i+=(PAGE_SIZE/sizeof(unsigned long)), j++ )
+ {
+ pfn_to_mfn_frame_list[j] =
+ virt_to_machine(&phys_to_machine_mapping[i]) >> PAGE_SHIFT;
+ }
+ HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list =
+ virt_to_machine(pfn_to_mfn_frame_list) >> PAGE_SHIFT;
+
+
#ifdef CONFIG_EARLY_PRINTK
{
char *s = strstr(*cmdline_p, "earlyprintk=");
/* Upon block read completion, issue a dummy machphys update for the
-pages in the buffer, just in case we're being migrated. */
+pages in the buffer, just in case we're being migrated.
+THIS CODE SHOULD BE REMOVED WHEN WE HAVE GRANT TABLES */
-static void blkif_read_completion(struct request *req)
+static void blkif_completion(blkif_response_t *bret, struct request *req)
{
+#if 0
struct bio *bio;
struct bio_vec *bvec;
int idx;
- unsigned long mfn, pfn
+ unsigned long mfn, pfn;
- rq_for_each_bio(bio, req) {
+ if( bret->operation == BLKIF_OP_READ )
+ {
+ rq_for_each_bio(bio, req) {
bio_for_each_segment(bvec, bio, idx) {
mfn = page_to_phys(bvec->bv_page)>>PAGE_SHIFT;
pfn = machine_to_phys_mapping[mfn];
queue_machphys_update(mfn, pfn);
}
+ }
}
+#endif
}
BUG();
end_that_request_last(req);
-
- if( bret->operation == BLKIF_OP_READ )
- blkif_read_completion( req );
+ blkif_completion( bret, req );
break;
case BLKIF_OP_PROBE:
memcpy(&blkif_control_rsp, bret, sizeof(*bret));
cd ${DEST_BK_REP}
ln -sf ../install install
make -j4 world
+ make -j4 linux26
cd ../install/boot
[ -r vmlinuz-${LINUX_VER}-xen0 ] && ln -s vmlinuz-${LINUX_VER}-xen0 xenolinux.gz